Irregular Data-parallel Objects in C++ 1 Irregularity and Data-parallelism

نویسندگان

  • Jean-Luc Dekeyser
  • Boris Kokoszko
  • Jean-Luc Levaire
  • Philippe Marquet
چکیده

Most data-parallel languages use arrays to support paral-lelism. This regular data structure allows a natural development of regular parallel algorithms. The implementation of irregular algorithms requires a programming eeort to project the irregular data structures onto regular structures. We rst propose in this paper a classiication of existing data-parallel languages. We brieey describe their irregular and dynamic aspects, and derive diierent levels where irregularity and dy-namicity may be introduced. We propose then a new irregular and dynamic data-parallel programming model, called Idole. Finally we discuss its integration in the C++ language, and present an overview of the Idole extension of C++. The evolution of data-parallel languages mimics closely the evolution of sequential languages. Keeping in mind eeciency and simplicity, compilers have supported, in a rst step, only regular data structures: arrays in sequential languages , vectors and matrices in parallel languages. Handling irregular data structures imposes then to the programmer an explicit management of the memory. A consequence is that irregularity will take place at the level of the algorithm (gather/scatter operations). The integration of irregular data structures in data-parallel languages can be compared to the emergence of dynamic memory management and pointers in sequential languages. While preserving the semantics of the data-parallel model, irregular data structures essentially allow the speciica-tion of interdependencies between parallel object elements, which are similar to the interdependencies expressed by pointers in sequential data structures. Let's consider the following example : in a binary tree, each node wants to compute the minimum of a value held by its two child nodes. (Parallel happy birthday: in a family and on several generations, each parent wants to know the next birthday to wish among its children.) This algorithm is eeectively a data-parallel algorithm. The same algorithm is applied to a set of data of similar type. For a data-parallel language supporting irregular data structures, the translation is straightforward: if (rchild and lchild exist) then min_child = min (rchild.val, lchild.val)

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Supporting Irregular and Dynamic Computations in Data Parallel Languages

Data-parallel languages support a single instruction ow; the parallelism is expressed at the instruction level. Actually, data-parallel languages have chosen arrays to support the parallelism. This regular data structure allows a natural development of regular parallel algorithms. The implementation of irregular algorithms necessitates a programming eeort to project the irregular data structure...

متن کامل

Data-parallel support for numerical irregular problems

A large class of intensive numerical applications show an irregular structure, exhibiting an unpredictable runtime behavior. Two kinds of irregularity can be distinguished in these applications. First, irregular control structures, derived from the use of conditional statements on data only known at runtime. Second, irregular data structures, derived from computations involving sparse matrices,...

متن کامل

Irregular Coarse-Grain Data Parallelism under LPARX

LPARX is a software development tool for implementing dynamic, irregular scientiic applications , such as multilevel multilevel nite diierence methods and particle methods, on high performance MIMD parallel architectures. It supports coarse grain data parallelism and gives the application complete control over specifying arbitrary block decompositions. LPARX provides structural abstraction, rep...

متن کامل

Irregular data-parallelism in a parallel object-oriented language by means of Collective Replication

In parallel object-oriented languages it is hard to elegantly express efficient data-parallel operations on objects of an irregularly-shaped object structure that is spread across the parallel computing environment. This paper presents a new programming model that smoothly integrates both task and data parallelism in a distributed object-oriented context. So called Collective Replication combin...

متن کامل

Programming with LPARX

LPARX is a software development tool for implementing dynamic irregular scientiic applications on high performance MIMD parallel computers. LPARX, implemented as a C++ class library, supports coarse grain data parallelism arising in particle methods and adaptive nite diierence methods. It provides structural abstraction, which enables data decompositions to exist as rst-class objects. LPARX is ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007